add Turso backend implementation #302
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This implementation is similar to the SQLite backend, with some modifications. Instead of the previous driver, I switched to using the libsql client. Additionally, I made changes to the
NewDatabase
function parameters to support the Turso DSN.If you prefer, you can still utilize the
NewInMemoryBackend
method, in which case the driver will fallback to usingmodernc.org/sqlite
.I removed the 'ReadOnly' transaction option since the libsql client currently does not currently support it.
I have tested this backend implementation with my current workflow, and it functions flawlessly.
Overall, these modifications have allowed me to successfully run the client within my application and the worker as a standalone application.
I also have plan to create an example similar to
Temporal
money transfer
example to demonstrate how to use Turso with go-workflows